home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 May / com_0505_1.iso / opensource / top10 / amc_install.exe / {app} / Scripts / Beyaz Perde (TR).ifs < prev    next >
Encoding:
Text File  |  2004-03-20  |  8.3 KB  |  288 lines

  1. // GETINFO SCRIPTING
  2. // Imports movies from beyazperde.com with picture
  3.  
  4. (***************************************************
  5.  *  Movie importation script for:                  *
  6.  *      IMDB (US), http://us.imdb.com              *
  7.  *                                                 *
  8.  *  by Tiu Fang to work with (only) beyazperde.com *
  9.  *  tiufang@hotmail.com                            *
  10.  *  Based on the IMDB scrit (but does not use      *
  11.  *  IMDB website at all)                           *
  12.  *                                                 *
  13.  *  For use with Ant Movie Catalog 3.4.0           *
  14.  *  www.antp.be/software/moviecatalog              *
  15.  *                                                 *
  16.  *  This program is free software; you can         *
  17.  *  redistribute it and/or modify it under the     *
  18.  *  terms of the GNU General Public License as     *
  19.  *  published by the Free Software Foundation;     *
  20.  *  either version 2 of the License, or (at your   *
  21.  *  option) any later version.                     *
  22.  ***************************************************)
  23.  
  24. program BeyazPerdePic;
  25. var
  26.   MovieName: string;
  27.  
  28. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  29. var
  30.   i: Integer;
  31. begin
  32.   result := -1;
  33.   if StartAt < 0 then
  34.     StartAt := 0;
  35.   for i := StartAt to List.Count-1 do
  36.     if Pos(Pattern, List.GetString(i)) <> 0 then
  37.     begin
  38.       result := i;
  39.       Break;
  40.     end;
  41. end;
  42.  
  43. procedure AnalyzePage(Address: string);
  44. var
  45.   Page: TStringList;
  46.   LineNr: Integer;
  47. begin
  48.   Page := TStringList.Create;
  49.   Page.Text := GetPage(Address);
  50.   if pos('Arama</title>', Page.Text) = 0 then
  51.   begin
  52.     SetField(fieldURL, Address);
  53.     AnalyzeMoviePage(Page)
  54.   end else
  55.   begin
  56.     PickTreeClear;
  57.     LineNr := 0;
  58.     LineNr := FindLine('<td class="metin3">Filmler</td>', Page, LineNr);
  59.     if LineNr > -1 then
  60.     begin
  61.       PickTreeAdd('Filmler', '');
  62.       AddMoviesTitles(Page, LineNr);
  63.     end;
  64.  
  65.     if PickTreeExec(Address) then
  66.       AnalyzePage(Address);
  67.   end;
  68.   Page.Free;
  69. end;
  70.  
  71. procedure AnalyzeMoviePage(Page: TStringList);
  72. var
  73.   Line, Value, Value2, FullValue: string;
  74.   LineNr: Integer;
  75.   BeginPos, EndPos: Integer;
  76. begin
  77.  
  78.   // Original Title & Year
  79.   LineNr := FindLine('<title>Beyazperde.com - ', Page, 0);
  80.   Line := Page.GetString(LineNr);
  81.   if LineNr > -1 then
  82.   begin
  83.     BeginPos := pos('<title>Beyazperde.com - ', Line);
  84.     if BeginPos > 0 then
  85.       BeginPos := BeginPos + 24;
  86.     EndPos := pos(' / ', Line);
  87.     if EndPos = 0 then
  88.     begin
  89.       EndPos := pos(' (', Line);
  90.       Value := copy(Line, BeginPos, EndPos - BeginPos);
  91.       SetField(fieldTranslatedTitle, Value);
  92.       SetField(fieldOriginalTitle, Value);
  93.     end else
  94.     begin
  95.       BeginPos := pos(' / ', Line) + 3;
  96.       if BeginPos > 0 then
  97.       begin
  98.         EndPos := pos(' (', Line);
  99.         Value := copy(Line, BeginPos, EndPos - BeginPos);
  100.         SetField(fieldOriginalTitle, Value);
  101.       end;
  102.     end;
  103.  
  104.     BeginPos := pos('(', Line) + 1;
  105.     if BeginPos > 0 then
  106.     begin
  107.       EndPos := pos(')', Line);
  108.       Value := copy(Line, BeginPos, EndPos - BeginPos);
  109.       SetField(fieldYear, Value);
  110.     end;
  111.   end;
  112.  
  113.   // Rating
  114.   LineNr := FindLine('<span class="metin2"><b>SinePuan', Page, 0);
  115.   if LineNr > -1 then
  116.   begin
  117.     Line := Page.GetString(LineNr);
  118.     if Pos('</b>', Line) > 0 then
  119.     begin
  120.       EndPos := pos('</b>', Line);
  121.       BeginPos := pos('tin2>', Line) + 5;
  122.       Value := copy(Line, BeginPos, EndPos - BeginPos);
  123.  
  124.       if pos(',', Value) > 0 then
  125.       begin
  126.         Value := IntToStr(Round(StrToInt(StrGet(Line, BeginPos), 0) + (StrToInt(StrGet(Line, BeginPos + 2), 0) / 10)));
  127.       end;
  128.       SetField(fieldRating, Value);
  129.     end;
  130.   end;
  131.  
  132.   // Picture
  133.   LineNr := FindLine('images/film/', Page, 0);
  134.   
  135.   if LineNr > -1 then
  136.   begin
  137.     Line := Page.GetString(LineNr);
  138.     BeginPos := pos('src="', Line) + 5;
  139.     EndPos := pos('">', Line);
  140.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  141.     GetPicture(Value,False);
  142.   end;
  143.  
  144.   // Director
  145.   LineNr := FindLine('<!-- YONETMEN -->', Page, 0);
  146.   if LineNr > -1 then
  147.   begin
  148.     FullValue := '';
  149.     Line := Page.GetString(LineNr + 4);
  150.  
  151.     BeginPos := pos('item>', Line) + 5;
  152.     EndPos := pos('</a>', Line);
  153.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  154.     HTMLDecode(Value);
  155.     SetField(fieldDirector, Value);
  156.   end;
  157.  
  158.   // Actors
  159.   FullValue := '';
  160.   LineNr := FindLine('<!-- OYUNCULAR -->', Page, 0);
  161.   
  162.   if LineNr > -1 then
  163.   begin
  164.     repeat
  165.       LineNr := LineNr + 1;
  166.       Line := Page.GetString(LineNr);
  167.  
  168.       if pos('href="/kisi/', Line) > 0 then
  169.       begin
  170.         BeginPos := pos('class=item>', Line) + 11;
  171.         EndPos := pos('</a>', Line);
  172.         Value := copy(Line, BeginPos, EndPos - BeginPos);
  173.         BeginPos := pos('(', Line);
  174.         EndPos := pos(')', Line) + 1;
  175.         Value := Value + ' ' + copy(Line, BeginPos, EndPos - BeginPos) + ', ';
  176.         FullValue := FullValue + Value;
  177.       end;
  178.     until pos('</table>', Line) > 0;
  179.     EndPos := Length(FullValue);
  180.     Delete(FullValue, EndPos - 1, EndPos);
  181.     HTMLDecode(FullValue);
  182.     SetField(fieldActors, FullValue);
  183.   end;
  184.  
  185.   //Country
  186.   LineNr := FindLine('<!-- ULKE -->', Page, 0);
  187.   if LineNr > -1 then
  188.   begin
  189.     Line := Page.GetString(LineNr + 2);
  190.     BeginPos := pos('em>', Line) + 3;
  191.     EndPos := pos('</a>', Line);
  192.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  193.     HTMLDecode(Value);
  194.     SetField(fieldCountry, Value);
  195.   end;
  196.  
  197.   //Category
  198.   LineNr := FindLine('arama.asp?kat=tur', Page, 0);
  199.   if LineNr > -1 then
  200.   begin
  201.     Line := Page.GetString(LineNr);
  202.     BeginPos := pos('em>', Line) + 3;
  203.     EndPos := pos('</a>', Line);
  204.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  205.     HTMLDecode(Value);
  206.     SetField(fieldCategory, Value);
  207.   end;
  208.  
  209.   // Length
  210.   LineNr := FindLine('<!-- SURESI -->', Page, 0);
  211.   if LineNr > -1 then
  212.   begin
  213.     Line := Page.GetString(LineNr + 2);
  214.     BeginPos := pos(', ', Line) + 2;
  215.     EndPos := pos(' dk', Line);
  216.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  217.     SetField(fieldLength, Value);
  218.   end;
  219.  
  220.  
  221.   //Description
  222.   LineNr := FindLine('<td width="431" colspan="4" bgcolor="#FFFFFF" class=metin align=left valign="middle">', Page, 0);
  223.   Value := '';
  224.   repeat
  225.     LineNr := LineNr + 1;
  226.     Line := Page.GetString(LineNr);
  227.     if pos('<p><script src="/beyazperde.js"></script>', Line) < 1 then
  228.     begin
  229.       Value := Value + Line;
  230.     end;
  231.   until pos('<p><script src="/beyazperde.js"></script>', Line) > 0;
  232.  
  233.   Value := StringReplace(Value, '<br>', #13#10);
  234.   Value := StringReplace(Value, '<p>', '');
  235.   Value := StringReplace(Value, #13#10+' ', #13#10);
  236.  
  237.   SetField(fieldDescription, Value);
  238.  
  239.   DisplayResults;
  240. end;
  241.  
  242. procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer);
  243. var
  244.   Line: string;
  245.   MovieTitle, MovieAddress: string;
  246.   StartPos: Integer;
  247.   TempPos: Integer;
  248. begin
  249.   repeat
  250.     LineNr := LineNr + 1;
  251.     Line := Page.GetString(LineNr);
  252.     TempPos := pos('<img src="', Line);
  253.  
  254.     if TempPos < 1 then
  255.     begin
  256.       StartPos := pos('<a href="', Line);
  257.       if StartPos > 0 then
  258.       begin
  259.         Startpos := Startpos + 9;
  260.         MovieAddress := copy(Line, StartPos, pos('" class=metin2>', Line) - StartPos);
  261.         StartPos := pos('<b>', Line) + 3;
  262.         MovieTitle := copy(Line, StartPos, pos('</b>', Line) - StartPos);
  263.         LineNr := LineNr + 1;
  264.         Line := Page.GetString(LineNr);
  265.         StartPos := pos('/ ', Line) + 2;
  266.         MovieTitle := MovieTitle + copy(Line, StartPos, pos ('<br>', Line) - StartPos);
  267.         HTMLDecode(Movietitle);
  268.         PickTreeAdd(MovieTitle, 'http://www.beyazperde.com' + MovieAddress);
  269.       end;
  270.     end;
  271.   until pos('filmden', Line) > 0;
  272. end;
  273.  
  274. begin
  275.   if CheckVersion(3,4,0) then
  276.   begin
  277.     MovieName := GetField(fieldOriginalTitle);
  278.     if MovieName = '' then
  279.       MovieName := GetField(fieldTranslatedTitle);
  280.     if Input('Beyaz Perde', 'Lⁿtfen filmin ismini girin', MovieName) then
  281.     begin
  282.       AnalyzePage('http://www.beyazperde.com/hizliarama.asp?keyword='+UrlEncode(MovieName));
  283.     end;
  284.   end else
  285.     ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.4.0)');
  286. end.
  287.  
  288.